package com.example.policymode6;

/**
 * 创建支付抽象类，定义支付逻辑
 * @author zhang
 */
public abstract class Payment {
    /**
     * 支付类型
     */
    public abstract String getName();
    /**
     * 支付
     * @param uid 用户id
     * @param amount 金额
     * @return 支付结果
     */
    public String pay(String uid, double amount){
        if(queryBalance(uid) < amount){
            return "支付失败，"+"商品金额："+amount+" ，用户余额："+queryBalance(uid);
        }
        return "支付成功，"+"商品金额："+amount+" ，用户余额："+(queryBalance(uid)-amount);
    }
    /**
     * 余额查询
     * @param uid 用户id
     * @return 余额
     */
    protected abstract double queryBalance(String uid);
}